package cn.b.sky.mes.pp.service;

import java.util.List;

import cn.b.sky.common.model.Page;
import cn.b.sky.mes.pp.model.ProductionConfirm;
import cn.b.sky.mes.pp.model.ProductionControl;
import cn.b.sky.mes.pp.model.ProductionOperation;
import cn.b.sky.mes.pp.model.condition.ProductionOperationCondition;

public interface ProductionOrderConfirmService {

  /**
   * 
   * <strong>Title : selectPOConfirmOperationByPO<br>
   * </strong> <strong>Description : </strong>获得订单明细对应的确认点<br>
   * <strong>Create on : 2015-10-9 下午02:26:23<br>
   * </strong>
   * <p>
   * 
   * @param productionOrderDetailId
   * @return List<POConfirmOperation>
   * @throws
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<ProductionOperation> selectProductionOperationByPC(String siteCode, String productionControlNum);

  /**
   * 通过主键查询
   * @param id
   * @return
   */
  ProductionOperation getProductionOperationById(Long id);

  /**
   * 根据条件查询需要报工的订单工序
   * @param condition
   * @return
   */
  Page getProductionOperationByCondition(ProductionOperationCondition condition);
  /**
   * 
   * <strong>Title : doConfirmProduction<br></strong>
   * <strong>Description : </strong>生产订单确认<br> 
   * <strong>Create on : 2015-10-12 下午03:41:18<br></strong>
   * <p>
   * @param confirmList
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void doConfirmProduction(List<ProductionConfirm> confirmList);

  /**
   * 
   * <strong>Title : insertConfirmDetail<br>
   * </strong> <strong>Description : </strong>新增报工明细<br>
   * <strong>Create on : 2015-10-12 下午05:07:07<br>
   * </strong>
   * <p>
   * 
   * @param confirmList
   *            void
   * @throws
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertConfirmDetail(List<ProductionConfirm> confirmList);

  /**
   * 
   * <strong>Title : updatePOConfirmOperation<br>
   * </strong> <strong>Description : </strong>更新确认点信息<br>
   * <strong>Create on : 2015-10-12 下午05:08:11<br>
   * </strong>
   * <p>
   * 
   * @param confirmList
   *            void
   * @throws
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updatePOConfirmOperation(List<ProductionConfirm> confirmList);

  /**
   * 
   * <strong>Title : updateProductionControl<br>
   * </strong> <strong>Description : </strong>更新订单明细<br>
   * <strong>Create on : 2015-10-12 下午05:15:21<br>
   * </strong>
   * <p>
   * 
   * @param confirmList
   *            void
   * @throws
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateProductionControl(List<ProductionConfirm> confirmList);

  /**
   * 
   * <strong>Title : updateProductionOrder<br>
   * </strong> <strong>Description : </strong>更新生产订单,流程使用<br>
   * <strong>Create on : 2015-10-12 下午05:15:44<br>
   * </strong>
   * <p>
   * 
   * @param confirmList
   *            void
   * @throws
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateProductionOrder(List<ProductionConfirm> confirmList);

  /**
   * 
   * <strong>Title : buckleMaterial<br></strong>
   * <strong>Description : </strong>生产管理号扣料，流程的扣料服务<br> 
   * <strong>Create on : 2016-9-18 下午3:47:43<br></strong>
   * <p>
   * @param confirmList
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void buckleMaterial(List<ProductionConfirm> confirmList);
}
